	package w83a.w83aOperacionesPaso.w83aActas;

import java.io.PrintWriter;
import java.util.HashMap;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.json.JSONObject;

import w83a.w83aBeans.W83aActasBean;
import w83a.w83aBeans.W83aListaDelegadosBean;
import w83a.w83aBeans.W83aListaDiferenciasBean;
import w83a.w83aBeans.W83aListaEscrutiniosBean;
import w83a.w83aUtilidades.W83aUtilidadesComunes;
import w83a.w83aUtilidadesComunes.W83aClsConstantes;
import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

// TODO: Auto-generated Javadoc
/**
 * The Class W83aTablaAgrupacionesOP.java.
 *
 * @author Deusto Sistemas
 */
public class W83aTablaActasNuevasOPAction extends Q70ActionPasoOP{

	
	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores, ActionMapping mapping,
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		//Guardamos la accion en el contexto
		contexto.set("action",request.getParameter("action"));
		//HashMap w83adelegadosEscrutinioDiferencia=new HashMap();//NOPMD
		//HashMap w83adelegadosDelegado=new HashMap();//NOPMD
		//W83aActasBean actaBean=new W83aActasBean();//NOPMD
		/*if(contexto.get("w83aNuevaActaBean")!=null)
			actaBean=(W83aActasBean)contexto.get("w83aNuevaActaBean");
		if(contexto.get("w83adelegadosEscrutinioDiferencia")!=null)
			w83adelegadosEscrutinioDiferencia=(HashMap)contexto.get("w83adelegadosEscrutinioDiferencia");
		if(contexto.get("w83adelegadosDelegado")!=null)
			w83adelegadosDelegado=(HashMap)contexto.get("w83adelegadosDelegado");*/
		//HashMap listaDelegadosBorrados=new HashMap();
		String[] acciones=(String[])request.getParameterValues("action");
		boolean encontrado=false;
		int c=0;
		StringBuffer s=new StringBuffer("find");
		while(!encontrado&&c<acciones.length){
			if(acciones[0].equals("find")&&!acciones[c].contentEquals(s)&&acciones[c].substring(0, 4).equals("find")){
				encontrado=true;
				contexto.set("action",acciones[c]);
			}
			c++;
		}
		W83aActasBean actasBean = (W83aActasBean)contexto.get("w83aNuevaActaBean");//w83aActasBean
		actasBean = (W83aActasBean)W83aUtilidadesComunes.inicializarPaginador(request, actasBean);			
		contexto.set("w83aNuevaActaBean",actasBean);
	}

	protected ActionForward processForward(Q70ContextoEJIE contexto, ActionErrors errors, ActionMapping mapping, 
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		String action = (String)contexto.get("action");contexto.get("w83aNuevaActaBean");
		//HashMap w83adelegadosEscrutinioDiferencia=new HashMap();
		//HashMap w83adelegadosDelegado=new HashMap();
		/*if(contexto.get("w83adelegadosEscrutinioDiferencia")!=null)
			w83adelegadosEscrutinioDiferencia=(HashMap)contexto.get("w83adelegadosEscrutinioDiferencia");
		if(contexto.get("w83adelegadosDelegado")!=null)
			w83adelegadosDelegado=(HashMap)contexto.get("w83adelegadosDelegado");*/
		W83aActasBean actasBean = (W83aActasBean)contexto.get("w83aNuevaActaBean");
	
		if ("find".equals(action)||"sord".equals(action)){
			//Si vengo de una pantalla anterior tengo que mirar si he realizado una búsqueda anterior
			if(StringUtils.isEmpty((String)contexto.get("modoPantalla"))
					||W83aClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla"))){
				return mapping.findForward("find");
			}
		
		}
		else if("findActas".equals(action)){
			return mapping.findForward("findActas");
		}
		else if ("editEscrutiniosC1".equals(action)){}//NOPMD
		else if (action.equalsIgnoreCase("editEscrutiniosC2")){}//NOPMD
		else if ("editDiferenciasC1".equals(action)){}//NOPMD
		else if ("editDiferenciasC2".equals(action)){}//NOPMD
		else if ("editDelegados".equals(action)){}//NOPMD
		else if(action.equalsIgnoreCase("findEscrutiniosC1")){
			actasBean.setModo("C1");
			contexto.set("w83aNuevaActaBean",actasBean);
			if(request.getParameter("cargada").equals("true")){
				return mapping.findForward("cargadaEscrutinioC1");
			}
			if(StringUtils.isNotEmpty(actasBean.getNumActa()))
				return mapping.findForward("findEscrutinioC1");
		}
		else if(action.equalsIgnoreCase("findEscrutiniosC2")){
			actasBean.setModo("C2");
			contexto.set("w83aNuevaActaBean",actasBean);
			if(request.getParameter("cargada").equals("true")){
				return mapping.findForward("cargadaEscrutinioC2");
			}
			if(StringUtils.isNotEmpty(actasBean.getNumActa()))
			return mapping.findForward("findEscrutinioC2");
		}
		else if(action.equalsIgnoreCase("findDiferenciasC1")){
			actasBean.setModo("C1");
			contexto.set("w83aNuevaActaBean",actasBean);
			if(request.getParameter("cargada").equals("true")){
				return mapping.findForward("cargadaDiferenciaC1");
			}
			if(StringUtils.isNotEmpty(actasBean.getNumActa()))
			return mapping.findForward("findDiferenciaC1");
		}
		else if(action.equalsIgnoreCase("findDiferenciasC2")){
			actasBean.setModo("C2");
			contexto.set("w83aNuevaActaBean",actasBean);
			if(request.getParameter("cargada").equals("true")){
				return mapping.findForward("cargadaDiferenciaC2");
			}
			if(StringUtils.isNotEmpty(actasBean.getNumActa()))
			return mapping.findForward("findDiferenciaC2");
		}
		else if(action.equalsIgnoreCase("findDelegados")){
			if(request.getParameter("cargada").equals("true")){
				return mapping.findForward("cargadaDelegado");
			}
			if(StringUtils.isNotEmpty(actasBean.getNumActa()))
			return mapping.findForward("findDelegado");
		}
		else{
			if(request.getParameter("action").equalsIgnoreCase("buscarSindicatoColegio"))
			{
				String sindicatoExistente=(String)contexto.get("sindicatoExistente");
				JSONObject jsonObject = new JSONObject();
				jsonObject.put("existe", "no");
				if(sindicatoExistente.equalsIgnoreCase("si")){
					jsonObject.put("existe", "si");
				}
				response.setContentType("text/javascript;charset=iso-8859-1");
				response.setHeader("Pragma", "cache");
				response.setHeader("Expires", "0");
				response.setHeader("Cache-Control", "private");
				response.setStatus(HttpServletResponse.SC_OK);
				PrintWriter out = response.getWriter();
				out.print(jsonObject.toString());
				out.flush();
				return null;	
			}
			else if(request.getParameter("action").equalsIgnoreCase("buscarDniDelegados")
					||
					request.getParameter("action").equalsIgnoreCase("buscarDniSustitutoDelegados")
					){
				String dniExistente=(String)contexto.get("dniExistente");
				JSONObject jsonObject = new JSONObject();
				jsonObject.put("existe", "no");
				if(dniExistente.equalsIgnoreCase("si")){
					jsonObject.put("existe", "si");
				}
				response.setContentType("text/javascript;charset=iso-8859-1");
				response.setHeader("Pragma", "cache");
				response.setHeader("Expires", "0");
				response.setHeader("Cache-Control", "private");
				response.setStatus(HttpServletResponse.SC_OK);
				PrintWriter out = response.getWriter();
				out.print(jsonObject.toString());
				out.flush();
				return null;	
			}
			else if(request.getParameter("action").equalsIgnoreCase("buscarSindicatoTabla"))
			{
				JSONObject jsonObject = new JSONObject();
				String sindicato=request.getParameter("sindicato");
				HashMap lista=new HashMap();
				jsonObject.put("yaExiste","no");
				if(contexto.get("w83aLista"+request.getParameter("tabla"))!=null&&((HashMap)contexto.get("w83aLista"+request.getParameter("tabla"))).size()>0){
					lista=(HashMap)contexto.get("w83aLista"+request.getParameter("tabla"));
				}
				if(lista.containsKey(sindicato)){
					jsonObject.put("yaExiste","si");
				}
				response.setContentType("text/javascript;charset=iso-8859-1");
				response.setHeader("Pragma", "cache");
				response.setHeader("Expires", "0");
				response.setHeader("Cache-Control", "private");
				response.setStatus(HttpServletResponse.SC_OK);
				PrintWriter out = response.getWriter();
				out.print(jsonObject.toString());
				out.flush();
				return null;
			}
			else if(request.getParameter("action").equalsIgnoreCase("buscarDetalle"))
			{
					HashMap lista=new HashMap();
					JSONObject jsonObject = new JSONObject();
					if(contexto.get("w83aLista"+request.getParameter("tabla"))!=null&&((HashMap)contexto.get("w83aLista"+request.getParameter("tabla"))).size()>0){
						lista=(HashMap)contexto.get("w83aLista"+request.getParameter("tabla"));
					}
					if(lista.get(request.getParameter("codigo")) instanceof W83aListaEscrutiniosBean){
						W83aListaEscrutiniosBean escrutinio=(W83aListaEscrutiniosBean)lista.get(request.getParameter("codigo"));
						jsonObject.put("sindicato", escrutinio.getSindicato());
						jsonObject.put("descripcion", escrutinio.getDescripcionSindicato());
						jsonObject.put("hombres", escrutinio.getHombres());
						jsonObject.put("mujeres", escrutinio.getMujeres());
						jsonObject.put("votos", escrutinio.getNumVotos());
					}
					else if(lista.get(request.getParameter("codigo")) instanceof W83aListaDiferenciasBean){
						W83aListaDiferenciasBean diferencia=(W83aListaDiferenciasBean)lista.get(request.getParameter("codigo"));
						jsonObject.put("sindicato", diferencia.getSindicato());
						jsonObject.put("descripcion", diferencia.getDescripcionSindicato());
						jsonObject.put("hombres", diferencia.getHombres());
						jsonObject.put("mujeres", diferencia.getMujeres());
						
					}
					else if(lista.get(request.getParameter("codigo")) instanceof W83aListaDelegadosBean){
						W83aListaDelegadosBean delegado=(W83aListaDelegadosBean)lista.get(request.getParameter("codigo"));
						jsonObject.put("codSindicato", delegado.getCodSindicato());
						if(StringUtils.isNotEmpty(delegado.getCodBaja())){
							jsonObject.put("codMotivo", delegado.getCodBaja());
						}
						else{
							jsonObject.put("codMotivo", "");
						}
						jsonObject.put("sindicato", delegado.getCodSindicato());
						jsonObject.put("codColegio", delegado.getCodColegio());
						jsonObject.put("colegio", delegado.getCodColegio());
						/*if(delegado.getCodColegio().equalsIgnoreCase(colegios.getCod1())){
							jsonObject.put("colegio", "T");
						}
						else{
							jsonObject.put("colegio", "E");
						}*/
						jsonObject.put("dni", delegado.getDni());
						jsonObject.put("nombre", delegado.getNombre());
						jsonObject.put("prim", delegado.getApellido1());
						jsonObject.put("seg", delegado.getApellido2());
						jsonObject.put("fechaAlta", delegado.getFechaAlta());
						if(StringUtils.isNotEmpty(delegado.getFechaBaja())){
							jsonObject.put("fechaBaja", delegado.getFechaBaja());
						}
						else{
							jsonObject.put("fechaBaja", "");
						}
						
						jsonObject.put("dniSustituto", delegado.getDniSustituto());
						jsonObject.put("sexo", delegado.getSexo());
					}
				
				
				response.setContentType("text/javascript;charset=iso-8859-1");
				response.setHeader("Pragma", "cache");
				response.setHeader("Expires", "0");
				response.setHeader("Cache-Control", "private");
				response.setStatus(HttpServletResponse.SC_OK);
				PrintWriter out = response.getWriter();
				out.print(jsonObject.toString());
				out.flush();
				return null;
			}
			
		}
			
			return mapping.findForward("ok");
		
	}

}
